#include <stdio.h>
/*
 * exec类函数接口采用类似main函数的形式,即
 * 形如char *exec_fun(int argc, char *argv[], void *ret)的声明,
 * argc表示参数的个数,该个数包括命令的名字,例如,login命令,argc包括login,即argv[0]=="login"
 * argv为各个参数的字符串指针,ret用于给server主程序返回结果,若为NULL,则不需回传结果.
 * 将执行结果返回给server，然后由server释放掉cmd申请的用于返回结果的内存空间，
 * 如果cmd返回NULL，则server返回给client一个特定的标识，该标识应由display函数解释，
 * 而不是有client主程序解释。
 */

/* 
 * login程序采用的参数格式为:
 * login LOGNAME UID GID passwd
 */
char *exec_login(int argc, char *argv[], void *ret)
{
	struct user *rett = (struct user *)ret;
	char *r = NULL;
	char *passwd = NULL;
	
	sscanf(argv[2], "%d", &rett->uid);
	sscanf(argv[3], "%d", &rett->gid);
	memset(rett->login_name, 0, sizeof(rett->login_name));
	strncpy(rett->login_name, argv[1], sizeof(rett->login_name) - 1);
	passwd = argv[4];
}
